package cn.terminus.client.customer.contractinfo.result;

import cn.terminus.client.customer.contractfile.result.ContractFileResult;
import cn.terminus.client.customer.contractrentclause.result.ContractRentClauseResult;
import cn.terminus.client.customer.contractrentdiscountclause.result.ContractRentDiscountClauseResult;
import cn.terminus.client.customer.contractrentincrementalclause.result.ContractRentIncrementalClauseResult;
import cn.terminus.client.customer.custominfo.result.CustomInfoByNameResult;
import cn.terminus.client.customer.custompurposeroom.result.RoomDetailResult;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;

/**
 * @author leslie.zhang
 * @date 2021/7/26 5:43 下午
 */
@Data
public class RentContractInfoDetailResult implements Serializable {
    private static final long serialVersionUID = -73838413261501328L;
    /**
     * ID
     */
    private Long id;
    /**
     * 合同编号
     */
    private String code;
    /**
     * 合同签订日期
     */
    private LocalDate signTime;
    /**
     * 合同开始时间
     */
    private LocalDate effectiveBeginTime;
    /**
     * 合同结束时间
     */
    private LocalDate effectiveEndTime;
    /**
     * 计算精度code
     */
    private String precisionCode;
    /**
     * 合同标签code,号分割
     */
    private String labelCode;
    /**
     * 租客id
     */
    private Long customerId;
    /**
     * 合同签单人姓名
     */
    private String contractSigner;
    /**
     * 合同签单人电话
     */
    private String contractSignerPhone;
    /**
     * 押金
     */
    private BigDecimal deposit;
    /**
     * 押金字典单位编码
     */
    private String depositUnitCode;
    /**
     * 交付日期
     */
    private LocalDate deliverTime;
    /**
     * 办证日期
     */
    private Integer certificateNumber;
    /**
     * 办证日期单位code 工作日/自然日
     */
    private String certificateUnitCode;
    /**
     * 违约金
     */
    private BigDecimal violation;
    /**
     * 违约金单位编码
     */
    private String violationUnitCode;
    /**
     * 合同类型 1租 2销售
     */
    private Integer type;
    /**
     * 物业费
     */
    private BigDecimal propertyFee;
    /**
     * 物业费code
     */
    private String propertyFeeCode;
    /**
     * 合同状态 1正常 2删除
     */
    private Integer status;
    /**
     * create_user
     */
    private String createUser;
    /**
     * create_time
     */
    private Date createTime;
    /**
     * last_update_user
     */
    private String lastUpdateUser;
    /**
     * last_update_time
     */
    private Date lastUpdateTime;

    @ApiModelProperty(name = "customInfo", value = "客户信息", required = true)
    private CustomInfoByNameResult customInfo;

    @ApiModelProperty(name = "roomDetailResults", value = "房源", required = true)
    private List<RoomDetailResult> roomDetailResults;

    @ApiModelProperty(name = "contractRentClauseResult", value = "合同租金条款", required = true)
    private ContractRentClauseResult contractRentClauseResult;


    @ApiModelProperty(name = "incrementalClauseResults", value = "递增条款", required = true)
    private List<ContractRentIncrementalClauseResult> incrementalClauseResults;

    @ApiModelProperty(name = "discountClausesData", value = "优惠条款", required = true)
    private List<ContractRentDiscountClauseResult> discountClausesData;

    @ApiModelProperty(name = "fileList", value = "文件", required = true)
    private List<ContractFileResult> fileList;

}
